package com.itheima.easy.service;

import com.itheima.easy.base.AjaxResult;
import com.itheima.easy.dto.MyRetreatDto;
import com.itheima.easy.dto.RetreatDto;
import com.itheima.easy.dto.RetreatReqDto;
import com.itheima.easy.entity.Retreat;
import com.itheima.easy.vo.DataScopeDto;
import com.itheima.easy.vo.retreat.RetreatVo;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * @author sjqn
 * @date 2023/6/19
 */
public interface RetreatService {
    /**
     * 退住申请
     * @param retreatDto
     */
    public AjaxResult createRetreat(Retreat retreatDto);

    /**
     * 查询退住信息
     * @param      * @param status
     * @return
     */
    public AjaxResult<RetreatVo> getRetreat(String retreatCode, String assigneeId, Integer flowStatus);

    /**
     * 提交退住申请
     *  -护理组长审核
     *  -法务人员提交
     *  -结算员提交
     *  -结算员组长审核
     *  -副院长审核
     *  -结算员调整账单提交
     * @param retreatDto
     * @return
     */
    AjaxResult submitRetreat(RetreatDto retreatDto);

    /**
     * 审核拒绝
     * @param retreatCode  退住单code
     * @param reject   拒绝原因
     * @return
     */
    AjaxResult auditReject(String retreatCode, String reject);

    /**
     * 撤回
     * @param retreatCode
     * @param flowStatus
     * @return
     */
    AjaxResult revocation(String retreatCode, Integer flowStatus);

    /**
     * 撤销驳回
     * @param retreatCode
     * @return
     */
    AjaxResult disapprove(String retreatCode,String message);

    /**
     * 退住管理列表查询
     * @return
     */
    AjaxResult selectByPage(RetreatReqDto retreatReqDto);

    /**
     * 撤销
     * @param retreatCode   退住编码
     * @return
     */
    AjaxResult cancel(String retreatCode);

}
